home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib16.dsk / PERSPECTIVE 3D LISTING #2.bas < prev    next >
BASIC Source File  |  2023-02-26  |  1KB  |  34 lines

  1. 1  REM  ************************
  2. 2  REM  *      LISTING#2       *
  3. 3  REM  * BY RICHARD GOLDSTEIN *
  4. 4  REM  *  COPYRIGHT (C) 1983  *
  5. 5  REM  * BY  MICROSPARC, INC. *
  6. 6  REM  *  LINCOLN, MA. 01773  *
  7. 7  REM  ************************
  8. 10  TEXT : HOME : PRINT "** COPYRIGHT 1983 BY MICROSPARC, INC. **": PRINT : PRINT 
  9. 20  PRINT "LINE OF SIGHT:": INPUT "XE,YE,ZE=";XE,YE,ZE
  10. 30  INPUT "SCALE=";S: INPUT "K=";K
  11. 40 S1 = XE *XE +YE *YE:S2 =  SQR(S1):S3 =  SQR(S1 +ZE *ZE):S4 = 1/(S2 *S3)
  12. 50  HGR2 : HCOLOR= 3
  13. 60  READ N: REM  N=NO. OF LINES
  14. 70  FOR I = 1 TO N
  15. 80  READ X,Y,Z: GOSUB 240
  16. 90 U1 = 140 +S *U:V1 = 96 -S *V
  17. 100  READ X,Y,Z: GOSUB 240
  18. 110 U2 = 140 +S *U:V2 = 96 -S *V
  19. 120  HPLOT U1,V1 TO U2,V2
  20. 130  NEXT I
  21. 140  DATA  15
  22. 150  DATA  0,0,0,4,0,0,4,0,0,4,2,0
  23. 160  DATA  4,2,0,0,2,0,0,2,0,0,0,0
  24. 170  DATA  0,0,0,0,0,2,4,0,0,4,0,2
  25. 180  DATA  4,2,0,4,2,2,0,2,0,0,2,2
  26. 190  DATA  0,0,2,4,0,2,0,2,2,4,2,2
  27. 200  DATA  0,0,2,0,1,3,0,1,3,0,2,2
  28. 210  DATA  4,0,2,4,1,3,4,1,3,4,2,2
  29. 220  DATA  0,1,3,4,1,3
  30. 230  END 
  31. 240 A = (1 -K)/(1 -(X *XE +Y *YE +Z *ZE)/(S3 *S3))
  32. 250 U = A *(XE *Y -YE *X)/S2
  33. 260 V = A *(S2 *S2 *Z -(X *XE +Y *YE) *ZE) *S4
  34. 270  RETURN